package com.tedu.api.list;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

/**
 * 数组：遍历数组 遍历数据 三种：普通for 增强for Arrays工具类√ 集合：遍历数组 遍历数组三种：普通for 增强for
 * Iterator迭代器 保存数据优选：集合----变量数据优选Iterator迭代器 Iterator迭代器 接口----依赖Collection
 * 提供方法：iterator() 集合：迭代器使用方法：问，取，【不是必须操作】删
 */
public class Collection_IteratorAPI {
    @Test
    public void testIterator(){
        Collection c1=new ArrayList();
        c1.add("one"); c1.add("tow"); c1.add("three");
        /**
         * iterator()方法：获取集合的的迭代器---遍历数组
         */
        Iterator it=c1.iterator();
        //迭代器使用：1.问--结合中是否存在元素【集合元素不确定】
        /**
         * hasNext()  返回值：boolean
         * 作用：判断集合中是否还有元素可以遍历，返回true有元素 返回false无元素
         */
        while (it.hasNext());{ //迭代器：问操作--hasNext()
            //2.取--如果集合中存在元素：取出元素：取出元素---next()
            /**
             * E next()  返回值：E泛型 简单理解：Object
             * 作用：遍历取出元素
             */
            String str=(String) it.next();
            System.out.println("集合迭代器"+str);
        }
    }
    /**
     * 集合三种遍历方式：Iterator迭代器【问，取操作】
     * 普通for【难度，需要查API】
     * 增强for【没有难度】
     * 开发：选一种
     * 遍历同时对集合做元素删除操作--Iterator迭代器
     */
    @Test
    public void testFor(){
        Collection collection=new ArrayList();
        //需求：10个元素，普通for增加元素：0-9数值
        for(int i=0;i<10;i++){
            collection.add(i);
        }
        System.out.println("打印集合数据"+collection);

        //获取集合中所有的数据-----操作
        //1.使用普通for遍历 collection集合 提醒：查API
        //获取集合元素：List---方法get()
        for(int i=0;i<collection.size();i++){//拿下标
            // collection.getClass()
            // System.out.println("普通for输出集合："+i); 自己用的方式
            System.out.println("普通for输出合集2："+((List)collection).get(i));
        }

        //2.使用增强for遍历：   语法：for(Integer i:集合名){}
        //                        for(Object i:集合名)
        //collection是顶级集合--存任何数据--Object类型
        Collection a=new ArrayList<>();
        for(int i=0;i<10;i++){
            a.add(i);
        }

    }
}
